SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE FUNCTION [dbo].[FU_CONV_MONE_Q01]
/*------------------------------------------------------*/  
/*---- Empresa           : OFISIS S.A.              ----*/  
/*---- Cliente           : OFISIS S.A.              ----*/  
/*---- Nombre FU         : SP_CONV_AJUS_Q01         ----*/  
/*---- Desarrollado por  : Alberto Jimenez          ----*/  
/*---- Fecha Creaci>n    : 03/02/2003               ----*/  
/*---- Base de Datos     : SLQ Server               ----*/  
/*---- Versi>n           : 8.0                      ----*/  
/*------------------------------------------------------*/  
/*------------------------------------------------------*/  
/*---Modificado 1 por     : PERCY GARCIA	  ----*/
/*---Fecha Modificaci¢n   : 26/02/2004       ----*/
/*---Detalle Modificaci¢n :  SE AGREGO ROUND CUANDO CALCULA IMPORTES  ----*/
/*------------------------------------------------------*/  
/*------------------------------------------------------*/  
/*--- Drop PROCEDURE SP_CONV_AJUS_Q01		    ----*/
/*--- Grant All on SP_CONV_AJUS_Q01 To Public	    ----*/
/*--- SP_CONV_AJUS_Q01 '01','LIB',1,'PAC','COM',0.64,'2002/11/15',00000,0 ONV OUTPUT---*/
/*--- SP_CONV_AJUS_Q01 '01','SOL',1,'PAC','COM',1,'2003/02/07',1500,0  ONV OUTPUT---*/
/*------------------------------------------------------*/     
(
  @ISCO_EMPR            TD_VC_002,
  @ISCO_MONE_ORIG	TD_VC_003,
  @INNU_CNTB_EMPR       TD_IN_001_CONT,
  @ISTI_CAMB	        TD_VC_003,
  @INFA_CAMB            TD_NU_015_006, 
  @INIM_ORIG	 	TD_NU_016_004,
  @INNU_ANNO            TD_IN_004_ANNO,
  @INNU_MESE            TD_IN_002_MESE)      
      
  RETURNS NUMERIC(16,4)        
      
AS      
Begin      
Declare
  @VSCO_MONE_DEST  TD_VC_003,
  @VSCO_MON1       TD_VC_003,
  @VSCO_MONE_BAS1  TD_VC_003,
  @VSTI_OPE1       TD_VC_001,
  @VSCO_MON2       TD_VC_003,
  @VSCO_MONE_BAS2  TD_VC_003,
  @VSTI_OPE2       TD_VC_001,
  @VNFA_CAMB_0002  TD_NU_015_006,
  @VNIM_CONV       TD_NU_016_004

  ---- Verificamos si ambas monenas son iguales
  Select @VSCO_MONE_DEST = CO_MONE
  From TTCNTB_EMPR 
  Where CO_EMPR = @ISCO_EMPR
  and NU_CNTB_EMPR = @INNU_CNTB_EMPR

  If @ISCO_MONE_ORIG !=  @VSCO_MONE_DEST
  Begin
    ----  Recupero monedas
    Select @VSCO_MON1 = CO_MON1,
	   @VSCO_MONE_BAS1 = CO_MONE_BAS1,
           @VSTI_OPE1 = TI_OPE1,
	   @VSCO_MON2 = CO_MON2,
           @VSCO_MONE_BAS2 = CO_MONE_BAS2,
	   @VSTI_OPE2 = TI_OPE2
    From   TMCONV_MONE 
    Where  CO_MONE_ORIG   = @ISCO_MONE_ORIG
    And    CO_MONE_DEST   = @VSCO_MONE_DEST 

    ---- Solo convierte para Paso 1
    If @VSCO_MON2 is null and @INIM_ORIG <>0 and @INFA_CAMB >0
    Begin
      If @VSTI_OPE1 = 'M'
        Select @VNIM_CONV  =  Round(@INIM_ORIG * @INFA_CAMB, 2)
      Else
        Select @VNIM_CONV  =  Round(@INIM_ORIG / @INFA_CAMB, 2)
    End

    ---- Convierte cuando tiene Paso 1 y Paso 2
    If @VSCO_MON1 is not null and @VSCO_MON2 is not null and @INIM_ORIG <>0 and @INFA_CAMB >0
    Begin
      
      If @VSTI_OPE1 = 'M'
        Select @VNIM_CONV  =  Round(@INIM_ORIG * @INFA_CAMB, 2)
      Else
        Select @VNIM_CONV  =  Round(@INIM_ORIG / @INFA_CAMB, 2)

      Select @VNFA_CAMB_0002 = 
           Case  @ISTI_CAMB
             When  'COM' Then FA_CAMB_CMPR
             Else   FA_CAMB_VNTA
	   End 
      From    TCFACT_CIER
      Where   CO_MONE = @VSCO_MON2
      And     NU_ANNO = @INNU_ANNO
      And     NU_MESE = @INNU_MESE
---   And     CO_MONE_BASE = @VSCO_MONE_BAS2
---   And     FE_CAMB      = @IDFE_CAMB

      If IsNull(@VNFA_CAMB_0002,0) > 0
      Begin
        If @VSTI_OPE2 = 'M'
          Select @VNIM_CONV  =  Round(@VNIM_CONV * @VNFA_CAMB_0002, 2)
        Else
          Select @VNIM_CONV  =  Round(@VNIM_CONV / @VNFA_CAMB_0002, 2)
      End 
      Else
   	    Select @VNIM_CONV = 0
      End
    ---- Si importe original es 0
    If @INIM_ORIG = 0
	Select @VNIM_CONV = 0
    End

  If @ISCO_MONE_ORIG =  @VSCO_MONE_DEST
     Select @VNIM_CONV  =  Round(@INIM_ORIG, 2)
      
Return @VNIM_CONV      
      
End      
      
/*----------------fin Funcion---------------------------*/      


GO
